package com.wicket.okrcomponent.integration.dto;

import com.wicket.okrcomponent.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ImplementLoopAddPersonPreFinStandardDataSnapshotComReqDto
 * @使用场景
 */
@Data
public class ImplementLoopAddPersonPreFinStandardDataSnapshotComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 业务数据对象 ACCT_STD_DATA_TARGET_CONT_SNAP:账户标准数据目标内容快照 ACCT_STD_DATA_AMT_SNAP:目标内容周期、相关人与账户快照 INIT_BUDGET_AND_REAL_ACCT:初始化预算或实体账户 TARGET_BUDGET_SET:目标预算设置 CACL_OR_UNDERPIN_STD_DATA_SNAP:计算或托底标准数据快照 EVA_TEMP_CONF_ARGUMENTS:评价模板配置参数 ORG_TYPE_DICTIONARY:组织架构类型字典 BUSINESS_DATA_OBJECT_TEST:业务数据对象验证 CALC_SUBJECTIVE_WEIGHT_SCORE:计算权重主观评分 CALC_DATA_RESULT:计算数据结果 PLATFORM_OM_CONF:平台运维配置
   */
  @NotNull(message = "业务数据对象不能为空")
  @ApiModelProperty("业务数据对象")
  private String businessDataObject;

  /**
   * 数据对象批次标识
   */
  @NotNull(message = "数据对象批次标识不能为空")
  @ApiModelProperty("数据对象批次标识")
  private String dataObjectBatchCode;

  /**
   * 上一更新周期ID
   */
  @ApiModelProperty("上一更新周期ID")
  private String preUpdateCycleId;

  /**
   * 上一更新目标周期ID
   */
  @ApiModelProperty("上一更新目标周期ID")
  private String preUpdateEvaTargetCycleId;

  /**
   * 关联归属主体ID
   */
  @NotNull(message = "关联归属主体ID不能为空")
  @ApiModelProperty("关联归属主体ID")
  private String accountObjectId;

  /**
   * 归属账户ID
   */
  @NotNull(message = "归属账户ID不能为空")
  @ApiModelProperty("归属账户ID")
  private String accountId;

  /**
   * 是否预算账户 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否预算账户不能为空")
  @ApiModelProperty("是否预算账户")
  private String isBudgetAccount;

  /**
   * 累计收入金额
   */
  @NotNull(message = "累计收入金额不能为空")
  @ApiModelProperty("累计收入金额")
  private Double totalBudgetAmount;

  /**
   * 账户余额
   */
  @NotNull(message = "账户余额不能为空")
  @ApiModelProperty("账户余额")
  private Double accountActualBalance;

  /**
   * 可用金额
   */
  @NotNull(message = "可用金额不能为空")
  @ApiModelProperty("可用金额")
  private Double settlableBalance;

  /**
   * 冻结金额
   */
  @NotNull(message = "冻结金额不能为空")
  @ApiModelProperty("冻结金额")
  private Double unSettlableBalance;

  /**
   * 累计支出金额
   */
  @NotNull(message = "累计支出金额不能为空")
  @ApiModelProperty("累计支出金额")
  private Double accruedSettledAmount;

  /**
   * 资金使用率
   */
  @ApiModelProperty("资金使用率")
  private Double fundUsageRate;

}
